#ifndef PARAMETERGROUP_H
#define PARAMETERGROUP_H

#include <map>

#include <boost/shared_ptr.hpp>

#include <Klein/Shader/Parameter.h>

class KLEIN_API ParameterGroup
{
public:

	ParameterGroup();
	ParameterGroup(const ParameterGroup& parameterGroup);
	~ParameterGroup();

	bool AddParameter(const Parameter& parameter);
	void SetParameter(const String& parameterName, const String& parameterValue);
	const std::map<String, Parameter>& GetParameters() const;

private:

	std::map<String, Parameter> mParameters;
};

typedef boost::shared_ptr<ParameterGroup> ParameterGroupRef;

#endif
